查看原文
其他

Transformer升级之路:将β进制位置进行到底

苏剑林 PaperWeekly
2024-08-22


©PaperWeekly 原创 · 作者 | 苏剑林
单位 | 科学空间
研究方向 | NLP、神经网络

在文章《Transformer 升级之路:RoPE 是一种 β 进制编码》中,我们给出了 RoPE 的 进制诠释,并基于进制转化的思路推导了能够在不微调的情况下就可以扩展 Context 长度的 NTK-aware RoPE。不得不说,通过类比 进制的方式来理解位置编码,确实是一个非常美妙且富有启发性的视角,以至于笔者每次深入思考和回味之时,似乎总能从中得到新的领悟和收获。
本文将重新回顾 RoPE 的 进制诠释,并尝试将已有的 NTK-aware RoPE 一般化,以期望找到一种更优的策略来不微调地扩展 LLM 的 Context 长度。


进制类比
我们知道,RoPE 的参数化沿用了 Sinusoidal 位置编码的形式。而不知道是巧合还是故意为之,整数 n 的 Sinusoidal 位置编码,与它的 进制编码,有很多相通之处。具体来说,整数 n 的 进制表示的(从右往左数)第 m 位数字是:

而它的 Sinusoidal 位置编码是

可以看到,两者都有相同的 ,并且 同为周期函数,所以两者的唯一差距,只是无关紧要的取整 了。所以说,将 RoPE/Sinusoidal 位置编码类比为它 进制表示,是非常直观且合理的结果。



修正NTK

沿着《Transformer 升级之路:RoPE 是一种 β 进制编码》的思路,直接外推会将外推压力集中在“高位(m 较大)”上,而位置内插则会将“低位(m 较小)”的表示变得更加稠密,不利于区分相对距离。而 NTK-aware RoPE 其实就是进制转换,它将外推压力平摊到每一位上,并且保持相邻间隔不变,这些特性对明显更倾向于依赖相对位置的 LLM 来说是非常友好和关键的,所以它可以不微调也能实现一定的效果。
仔细看式(2), 事实上是一个整体,所以它实际只有 位,也就是说它相当于 n 的 进制编码。如果我们要扩展到 k 倍 Context,将 进制转换为 进制,那么至少应该有

于是新的 RoPE 变为

这就是上一篇文章我们提出的 NTK-RoPE。
然而,后来笔者仔细思考后,发现这其实还不够合理。回到式(1),如果要计算 进制的第 m 位数字,那么应该是

也就是说,除了 要换成 之外,求 的周期也要扩大 倍,这等价于求 之前,要多除以一个

在后面的实验中,我们把上一篇文章提出的式(4)称为“NTK-RoPE-old”,而式(6)称为“NTK-RoPE-fixed”。


混合进制

现在,不妨让我们更加“天马行空”一些——既然我们可以用 进制来表示位置,那么为何不干脆使用更一般化的“混合进制”呢?这里的混合进制,指的是每一位数字所使用的进位基数不尽相同,这对于我们来说并不鲜见,比如 60 秒是 1 分钟、60 分是 1 小时,但 24 小时是 1 天、7 天是 1 周,这里的 60、60、24、7 就是不同进制基数,换句话说秒、分、时、天、周就是一个混合进制。
假设从右往左数,第 1 位使用 进制、第 2 位使用 进制、第 3 位使用 进制、...,那么求 n 的第 m 位数字,结果是

为什么会考虑到混合进制呢?这是因为某天笔者发现了一个有趣的事实:RoPE 本质上是一种相对位置编码,相对位置是 Toeplitz 矩阵的一个特例,它长这个样(由于本文主要关心语言模型,所以右上角部分就没写出来了)。

从上式我们可以发现,相对位置编码的位置分布是不均衡的!0 的出现次数最多、1 次之、2 再次之,以此类推,即 n 越大出现次数越少。这就意味着,作为一种 进制编码的 RoPE,它的“高位”很可能是训练不充分的,换言之高位的泛化能力很可能不如低位。刚才我们说了,NTK-RoPE 将外推压力平摊到每一位上,如果这里的猜测合理的话,那么“平摊”就不是最优的,应该是低位要分摊更多,高位分摊更少,这就导致了混合进制。



分摊优化
具体来说,我们通过将 进制转换为 混合进制的方式来扩展到 k 倍 Context,这里 。此时式(7)变为

式(6)也相应地变成

根据“扩展 k 倍”和“低位要分摊更多”的原则,约束条件是

我们讨论如下形式的解

时,它满足 的条件,当 时,实际上就是前面的“NTK-RoPE-fixed”。当然,有兴趣的读者也可以试探别的形式的解,这里自由度本身就很大。 给出了约束

所以只有一个自由度可以调。经过简单的二分法搜索,笔者发现在自己的实验中, 能取得平均来说比较好的扩展效果(不同的模型可能会有不同的最优解,请自行调试),这个版本被称为“NTK-RoPE-mixed”。


实验结果

《Transformer 升级之路:RoPE 是一种 β 进制编码》的实验基础上,笔者补做了“NTK-RoPE-fixed”和“NTK-RoPE-mixed”的实验,对比如下:

可以看到,混合进制推导出来的“NTK-RoPE-mixed”所带来的提升还是很明显的,毕竟不用微调,算得上免费午餐了。此外,可以看到 版的外扩性能确实更好,但是 技巧需要在预训练阶段就加入,之前就有读者问过像 LLAMA 这种在预训练阶段并没有加入 技巧的模型,可否享受到 的“红利”呢?经过笔者测试,发现它可以通过加入如下 scale 因子来提升效果:

这里的 是预训练的最大长度,在本文的实验中是 512,在 LLAMA 中是 2048,LLAMA2 则是 4096,实现时可以直接给每个 乘上相应的因子。这样一来,在 之内的部分不受影响,之外的部分则按 缩放,算是一种简单的过渡,效果如下(加个 区别原来的 ):

可以看到,这个 也算得上免费的午餐了。总之,如果你打算进行从零预训练,不妨事先就加入 技巧,如果已经训练完成,那么可以使用式(13)替代,最后再加上 NTK-RoPE-mixed,能够取得较优的拓展 Context 效果。

文章小结

在这篇文章中,我们重温了 RoPE 的 进制视角,并尝试对 NTK-aware RoPE 进行推广,在混合进制的启发下,我们得到了一个更优的不微调扩展 Context 长度的策略,最后通过实验表明了它的有效性。

更多阅读



#投 稿 通 道#

 让你的文字被更多人看到 



如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。


总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 


PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。


📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算


📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿


△长按添加PaperWeekly小编



🔍


现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧


·
·

继续滑动看下一个
PaperWeekly
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存